package la.foton.atividade.controller;

import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import la.foton.atividade.entity.Cliente;
import la.foton.atividade.service.ClienteService;
import org.primefaces.event.RowEditEvent;

@ManagedBean(name = "clienteBean")
@RequestScoped
public class ClienteBean extends BaseBean {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
   @ManagedProperty("#{clienteService}")
   private ClienteService clienteService;
   private Cliente cliente;

	private String nomeCliente;

   private List<Cliente> listAll;

	public ClienteBean() {

	}

	public void incluir() {
      cliente = new Cliente();
      cliente.setNome(nomeCliente);

      clienteService.create(cliente);
      atualizarListaClientes();
		clean();
		addInfoMessage("Cliente criado com sucesso.");
	}

   public List<Cliente> getListAll()
   {
		if (listAll == null) {
         atualizarListaClientes();
		}
		return listAll;
	}

   public void atualizarListaClientes()
   {
      listAll = clienteService.getAll();
	}

	public void clean() {
		this.nomeCliente = "";
      this.nomeCliente = "";
	}

	public void onEdit(RowEditEvent event) {
      Cliente prj = (Cliente) event.getObject();
      // Cliente prj = null;
      clienteService.update(prj);
      atualizarListaClientes();
      addInfoMessage("Cliente" + " editado");
	}

	public void onCancel(RowEditEvent event) {
      Cliente prj = (Cliente) event.getObject();
      clienteService.deleteById(prj);
      atualizarListaClientes();
		addInfoMessage(prj.getNome() + " excluido");
	}

   public String getNomeCliente()
   {
      return nomeCliente;
	}

   public void setNomeCliente(String nomeCliente)
   {
      this.nomeCliente = nomeCliente;
	}

   public ClienteService getClienteService()
   {
      return clienteService;
	}

   public void setClienteService(ClienteService clienteService)
   {
      this.clienteService = clienteService;
	}

   public Cliente getCliente()
   {
      return cliente;
	}

   public void setCliente(Cliente cliente)
   {
      this.cliente = cliente;
	}

}
